package com.bestcem.xm.user.service;

import com.bestcem.xm.common.core.domain.web.ServiceResult;
import com.bestcem.xm.user.service.dto.user.OrgInfoResultDTO;
import com.bestcem.xm.user.service.dto.user.UserDTO;
import com.bestcem.xm.user.service.dto.user.UserGetTokenResultDTO;


/**
 * 钉钉相关服务
 *
 * @author panyun <yun.pan@idiaoyan.com>
 * @version v1.0
 * @date 2022/3/31 14:47
 */
public interface DingTalkService {

    /**
     * 获取用户的公司
     *
     * @param userName 用户名
     * @param password 密码
     * @return com.bestcem.xm.util.ServiceResult<java.lang.Object>
     * @author panyun <yun.pan@idiaoyan.com>
     * @date 2022/3/31 15:04
     */
    ServiceResult<OrgInfoResultDTO> getOrgInfo(String userName, String password);

    /**
     * 钉钉免登录接口
     * 通过sessionId和org_code获取token信息
     *
     * @param sessionId
     * @param orgCode
     * @return com.bestcem.xm.util.ServiceResult<java.lang.Object>
     * @author panyun <yun.pan@idiaoyan.com>
     * @date 2022/3/31 21:22
     */
    ServiceResult<UserGetTokenResultDTO> authToken(String sessionId, String orgCode);

    /**
     * 检查微信公众号用户是否存在
     * XM.apps_mysql.auth.utils.get_token_by_user
     *
     * @param dto 用户信息
     * @return com.bestcem.xm.util.ServiceResult<java.lang.Object>
     * @author panyun <yun.pan@idiaoyan.com>
     * @date 2022/3/31 23:10
     */
    ServiceResult<UserGetTokenResultDTO> getTokenByUser(UserDTO dto);
}
